<?php
/**
 * 两数相加
 * 给出两个 非空 的链表用来表示两个非负的整数。其中，它们各自的位数是按照 逆序 的方式存储的，并且它们的每个节点只能存储 一位 数字。
 *
 * 如果，我们将这两个数相加起来，则会返回一个新的链表来表示它们的和。
 *
 * 您可以假设除了数字 0 之外，这两个数都不会以 0 开头。
 *
 * 示例：
 *
 * 输入：(2 -> 4 -> 3) + (5 -> 6 -> 4)
 * 输出：7 -> 0 -> 8
 * 原因：342 + 465 = 807
 * @return mixed
 */
public function getResult()
{
    $l1 = [9, 9, 9, 9];
    $l2 = [9, 9, 9, 9];
    $i = count($l1) - 1;
    $j = count($l2) - 1;
    $flower = 0;
    $result = [];
    while ($i >= 0 || $j >= 0 || $flower) {
        if (!isset($l1[$i]) || !isset($l2[$j])) {
            $sum = $flower;
        } else {
            $sum = $l1[$i] + $l2[$j] + $flower;
        }
        $flower = intval($sum / 10);
        if ($flower) {
            $sum = $sum % 10;
        }
        array_unshift($result, $sum);

        $i--;
        $j--;
    }

    return $result;

}

var_dump(getResult());

